//===================================================================
// 项目名 : Hbt.Cur
// 文件名 : HbtHumanCollectionExtensions.cs
// 创建者 : Claude
// 创建时间: 2025-01-11
// 版本号 : V0.0.1
// 描述    : 人力资源服务集合扩展
//===================================================================

using Microsoft.Extensions.DependencyInjection;

namespace Hbt.Infrastructure.Extensions
{
    /// <summary>
    /// 人力资源服务集合扩展
    /// </summary>
    /// <remarks>
    /// 此类用于集中管理和注册人力资源相关的所有服务，包括：
    /// 1. 组织架构管理 - 部门、岗位、职级等
    /// 2. 员工管理 - 员工信息、档案、合同等
    /// 3. 考勤管理 - 考勤记录、请假、加班等
    /// 4. 薪资管理 - 薪资结构、发放、计算等
    /// 5. 培训管理 - 培训计划、课程、评估等
    /// 6. 绩效管理 - 绩效指标、评估、面谈等
    /// 7. 招聘管理 - 招聘计划、简历、面试等
    /// 8. 福利管理 - 社保、公积金、商业保险等
    /// </remarks>
    public static class HbtHumanCollectionExtensions
    {
        /// <summary>
        /// 添加人力资源服务
        /// </summary>
        /// <remarks>
        /// 注册人力资源相关的所有服务，包括：
        /// 1. 组织架构管理服务 - 部门、岗位、职级等
        /// 2. 员工管理服务 - 员工信息、档案、合同等
        /// 3. 考勤管理服务 - 考勤记录、请假、加班等
        /// 4. 薪资管理服务 - 薪资结构、发放、计算等
        /// 5. 培训管理服务 - 培训计划、课程、评估等
        /// 6. 绩效管理服务 - 绩效指标、评估、面谈等
        /// 7. 招聘管理服务 - 招聘计划、简历、面试等
        /// 8. 福利管理服务 - 社保、公积金、商业保险等
        /// </remarks>
        /// <param name="services">服务集合</param>
        /// <returns>服务集合</returns>
        public static IServiceCollection AddHumanServices(this IServiceCollection services)
        {
            // 组织架构管理服务
            // services.AddScoped<IHbtDepartmentService, HbtDepartmentService>();        // 部门服务
            // services.AddScoped<IHbtPositionService, HbtPositionService>();            // 岗位服务
            // services.AddScoped<IHbtJobLevelService, HbtJobLevelService>();            // 职级服务
            // services.AddScoped<IHbtOrganizationService, HbtOrganizationService>();    // 组织架构服务

            // 员工管理服务
            // services.AddScoped<IHbtEmployeeService, HbtEmployeeService>();            // 员工服务
            // services.AddScoped<IHbtEmployeeFileService, HbtEmployeeFileService>();    // 员工档案服务
            // services.AddScoped<IHbtEmployeeContractService, HbtEmployeeContractService>(); // 员工合同服务
            // services.AddScoped<IHbtEmployeeTransferService, HbtEmployeeTransferService>(); // 员工调动服务

            // 考勤管理服务
            // services.AddScoped<IHbtAttendanceService, HbtAttendanceService>();        // 考勤服务
            // services.AddScoped<IHbtLeaveService, HbtLeaveService>();                  // 请假服务
            // services.AddScoped<IHbtOvertimeService, HbtOvertimeService>();            // 加班服务
            // services.AddScoped<IHbtWorkScheduleService, HbtWorkScheduleService>();    // 工作排班服务

            // 薪资管理服务
            // services.AddScoped<IHbtSalaryService, HbtSalaryService>();                // 薪资服务
            // services.AddScoped<IHbtSalaryStructureService, HbtSalaryStructureService>(); // 薪资结构服务
            // services.AddScoped<IHbtSalaryCalculationService, HbtSalaryCalculationService>(); // 薪资计算服务
            // services.AddScoped<IHbtSalaryPaymentService, HbtSalaryPaymentService>();  // 薪资发放服务

            // 培训管理服务
            // services.AddScoped<IHbtTrainingService, HbtTrainingService>();            // 培训服务
            // services.AddScoped<IHbtTrainingPlanService, HbtTrainingPlanService>();    // 培训计划服务
            // services.AddScoped<IHbtTrainingCourseService, HbtTrainingCourseService>(); // 培训课程服务
            // services.AddScoped<IHbtTrainingEvaluationService, HbtTrainingEvaluationService>(); // 培训评估服务

            // 绩效管理服务
            // services.AddScoped<IHbtPerformanceService, HbtPerformanceService>();      // 绩效服务
            // services.AddScoped<IHbtPerformanceIndicatorService, HbtPerformanceIndicatorService>(); // 绩效指标服务
            // services.AddScoped<IHbtPerformanceEvaluationService, HbtPerformanceEvaluationService>(); // 绩效评估服务
            // services.AddScoped<IHbtPerformanceInterviewService, HbtPerformanceInterviewService>(); // 绩效面谈服务

            // 招聘管理服务
            // services.AddScoped<IHbtRecruitmentService, HbtRecruitmentService>();      // 招聘服务
            // services.AddScoped<IHbtRecruitmentPlanService, HbtRecruitmentPlanService>(); // 招聘计划服务
            // services.AddScoped<IHbtResumeService, HbtResumeService>();                // 简历服务
            // services.AddScoped<IHbtInterviewService, HbtInterviewService>();          // 面试服务

            // 福利管理服务
            // services.AddScoped<IHbtBenefitService, HbtBenefitService>();              // 福利服务
            // services.AddScoped<IHbtSocialSecurityService, HbtSocialSecurityService>(); // 社保服务
            // services.AddScoped<IHbtHousingFundService, HbtHousingFundService>();      // 公积金服务
            // services.AddScoped<IHbtCommercialInsuranceService, HbtCommercialInsuranceService>(); // 商业保险服务

            return services;
        }
    }
}
